package com.hckjsec.oa.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hckjsec.common.annotation.Excel;
import com.hckjsec.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 公司OA日期对象 oa_date
 * 
 * @author cyt
 * @date 2021-12-21
 */
public class OaDate extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 年度 */
    @Excel(name = "年度")
    private Long year;

    /** 日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date date;

    /** 初始化是否节假日 */
    @Excel(name = "初始化是否节假日")
    private Long oldfestival;

    /** 是否节假日 0-不是节假日 1-节假日 */
    @Excel(name = "是否节假日 0-不是节假日 1-节假日")
    private Long festival;

    //扩展字段
    /** 考勤类别 0 内勤,1 外勤 */
    private String attendanceType;

    /** 考勤时间段 0 签到,1 签退 */
    private String period;

    /** 打卡时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date pthTime;

    /** 状态 0 正常,1 迟到,2 早退 */
    private String state;

    /** 超时时长计算 */
    private String exceedMsg;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setYear(Long year)
    {
        this.year = year;
    }

    public Long getYear()
    {
        return year;
    }
    public void setDate(Date date)
    {
        this.date = date;
    }

    public Date getDate()
    {
        return date;
    }
    public void setOldfestival(Long oldfestival)
    {
        this.oldfestival = oldfestival;
    }

    public Long getOldfestival()
    {
        return oldfestival;
    }
    public void setFestival(Long festival)
    {
        this.festival = festival;
    }

    public Long getFestival()
    {
        return festival;
    }

    public String getAttendanceType() {
        return attendanceType;
    }

    public void setAttendanceType(String attendanceType) {
        this.attendanceType = attendanceType;
    }

    public String getPeriod() {
        return period;
    }

    public void setPeriod(String period) {
        this.period = period;
    }

    public Date getPthTime() {
        return pthTime;
    }

    public void setPthTime(Date pthTime) {
        this.pthTime = pthTime;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state;
    }

    public String getExceedMsg() {
        return exceedMsg;
    }

    public void setExceedMsg(String exceedMsg) {
        this.exceedMsg = exceedMsg;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("year", getYear())
                .append("date", getDate())
                .append("oldfestival", getOldfestival())
                .append("festival", getFestival())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
